Skip to content

Conversation

@SlamBamActionman
Copy link
Member

About the PR

This PR adds a new "objective" to the Space Ninja: Do not permanently kill more than X people. For Ninja, X is set to 3.

A player counts as being killed by the Ninja if either the Ninja deals the killing blow, or if the player dies from non-player-inflicted damage (bleeding/environment) and the Ninja has dealt the most damage. If a player killed by a ninja is revived, they no longer count for the objective.

The kill counting is only applied to humanoid species (including NPCs). Monkeys, ratkings, dragons and other mobs do not count.

Upon round end, if the Ninja has killed more than X people, they will gib. Dishonor on your family.

Why / Balance

Ninjas are not meant to go on murder sprees, yet their equipment does lend itself to extremely effective 1v1 combat and (more importantly) escape. This means they have the capability to pick off single targets and flee if the fight is not in their favor, and as a violent full antag they don't have much designating how dangerous they are allowed to be. This objective intends to apply a soft discouragement to be overly violent as ninja - while it does not hinder them in active gameplay, it acts as a guidance for players that the Ninja should not go around murdering without purpose.

Still, Ninjas should be able to kill people, and it will at times be a pure necessity. Unlike many antags like Thieves, Traitors or Nukies they are not heavily punished if someone they have previously killed gets revived (Ninjas ironically rely a lot less on stealth to be effective). Also sometimes your hand is forced during a situation on the station where bodies can't be recovered. Therefore the objective still permits a certain number of kills and the "redtext punishment" doesn't kick in until round end, meaning Ninjas have soft encouragement to let their victims get found and revived.

This objective should also give a goalpost for how murderous Ninjas should be in terms of rules; it is still up to admin discretion of a Ninja is being too murdery or not, and failing this objective should not constitute a rules violation on its own. It's more of a nudge in the right direction for how we want Ninjas to play; lethal, but not necessarily round-removing.

Technical details

Turns out we already have a kill tracking system in the game for the Death Match gamemode! And it seems pretty good! So what I've done is apply the KillTrackingComponent to all base humanoid species and made an objective condition that tracks whenever a kill is attributed to the condition holder.

Things to note

  1. The GibOnRoundEnd component has been added to the Ninja. This system could benefit from being refactored into a trigger-based system like how the acidifier is, as it seems to be a very simple "If X then Y" system. I've left it as out of scope for this PR, but it does mean the ninja gibbing leaves its equipment behind. Shouldn't matter since it's the round-end.
  2. Since GibOnRoundEnd runs after all objectives have been evaluated and set as green/redtext, the "Survive" objective still counts as completed. This would require some more sophisticated handling of roundend objective handling, which would be better included in the aforementioned refactor.

Media

image image image

Requirements

Breaking changes

Changelog

🆑

  • add: Space Ninjas now spawn with a new objective to not kill too many people on the station.
  • add: Space Ninjas now die a dishonorable death if they have killed too many people when the round ends.

@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. labels Oct 18, 2025
@Princess-Cheeseballs
Copy link
Member

This is really funny I like this. Although ninja's kit should probably be de-tuned a bit still.

@EthanQix
Copy link

Ninja is supposed to be a 1 on 1 powerhouse so I like this approach of disincentivizing murderboning. Quick questions : do people dying to the spider bomb count ? Should secoffs count, as they are likely to become necessary kills ?

@SlamBamActionman
Copy link
Member Author

SlamBamActionman commented Oct 18, 2025

Do people dying to the spider bomb count ?

Uhhhh good question. Let me test.

EDIT: Bombs do not count for this. It should be possible to update the killcount tracking system for it though.

Should secoffs count, as they are likely to become necessary kills ?

Security should count for the killcount; while Ninjas are more likely to get into valid lethal combat with SecOffs, Security as a department are not exempt from RR restrictions ruleswise.

@TeenSarlacc
Copy link
Contributor

in the EOR it says the ninja completed the survive objective, I know this is because they technically survived to the end of the round, but I think if the round ending is what caused them to die then it shouldn't count (same with paradox clone)

@SlamBamActionman
Copy link
Member Author

in the EOR it says the ninja completed the survive objective, I know this is because they technically survived to the end of the round, but I think if the round ending is what caused them to die then it shouldn't count (same with paradox clone)

This is a known issue listed in the Technical details section, and left as out of scope for this PR.

@EmoGarbage404
Copy link
Contributor

I think mechanically this does not make a lot of sense.

First of all, from a technical perspective, the kill tracking system is not granular enough to actually be used in this context. Any kill that occurs from an explosion or atmos threat is very likely to count as environmental and not be tracked properly. not to mention various other murderboney activities like electrified grilles. It only really works with melee, throwables, and guns.

Ninjas are not meant to go on murder sprees, yet their equipment does lend itself to extremely effective 1v1 combat

I feel like what you are bumping up against is just an extremely poorly designed feature. If you don't want a player to go on a murder spree, then they shouldn't be receiving some of the most powerful offensive tools in the game. Ninjas have high melee DPS, stuns, teleports, and throwable weapons. Trying to turn this into a stealthy antag just feels like putting lipstick on a pig.

Additionally, the consequences of this PR only matter once the round is over (something that doesn't even matter a lot of the time, as the Ninja will get killed while fighting security or tiders). Nothing is really meaningfully mitigated during the round, and the only real consequence is failing one objective (with the survive objective still completing, kinda obviously a bug).

At this point I would honestly just recommend a full redesign with actual defined expectations of how the ninja should function instead of just taking the most obvious murderhobo antag ever and trying to squeeze it into an inoffensive hole.

@EthanQix
Copy link

Additionally, the consequences of this PR only matter once the round is over (something that doesn't even matter a lot of the time, as the Ninja will get killed while fighting security or tiders). Nothing is really meaningfully mitigated during the round, and the only real consequence is failing one objective (with the survive objective still completing, kinda obviously a bug).

I disagree. Having an actual written objective not to kill people will absolutely incentivize players not to murderbone so they can get the coveted greentext. That's the entire point of greentexting : the game itself telling the player that they did well.

At this point I would honestly just recommend a full redesign with actual defined expectations of how the ninja should function instead of just taking the most obvious murderhobo antag ever and trying to squeeze it into an inoffensive hole.

That I 100% agree with, every antag should have a design doc instead of just being ported from ss13 "because parity".

@EmoGarbage404
Copy link
Contributor

I disagree. Having an actual written objective not to kill people will absolutely incentivize players not to murderbone so they can get the coveted greentext. That's the entire point of greentexting : the game itself telling the player that they did well.

If you want to actually disincentivize people, then the game should take proactive steps to prevent or mitigate actions from being taken. An objective is a good first step but it's also little more than text on a page at the end of the day. When you're trying to push behavior in a way that runs pretty much counter to design, then there should be more concrete incentives than just end-of-round text.

Copy link
Contributor

@ToastEnjoyer ToastEnjoyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ninjas items should also be deleted, similarly to activating their death acidifier.

But otherwise I approve

@EmoGarbage404 EmoGarbage404 added the S: Concern A maintainer has raised concerns regarding the idea. The PR may be closed by another maintainer. label Oct 18, 2025
@EthanQix
Copy link

The ninjas items should also be deleted, similarly to activating their death acidifier.

But otherwise I approve

Could the ninja just auto acidify instead of gib ?

@beck-thompson
Copy link
Member

I agree with emo but I think it fits thematically so I think we should add it

@SlamBamActionman
Copy link
Member Author

First of all, from a technical perspective, the kill tracking system is not granular enough to actually be used in this context. Any kill that occurs from an explosion or atmos threat is very likely to count as environmental and not be tracked properly. not to mention various other murderboney activities like electrified grilles. It only really works with melee, throwables, and guns.

I half-agree. There are going to be instances where the kill tracking can't follow the source. And that's fine to move. You don't need to cover all edgecases to establish a pattern of behavior that the players will follow. Thieves are a good example of this; pacifism doesn't cover all instances of creating harm, but it does enough to make it feel consistent.

Ninjas are not meant to go on murder sprees, yet their equipment does lend itself to extremely effective 1v1 combat

I feel like what you are bumping up against is just an extremely poorly designed feature. If you don't want a player to go on a murder spree, then they shouldn't be receiving some of the most powerful offensive tools in the game. Ninjas have high melee DPS, stuns, teleports, and throwable weapons. Trying to turn this into a stealthy antag just feels like putting lipstick on a pig.

The intent is not to turn ninjas stealthy (as was noted in the PR description). It's to softly disincentivize a certain gameplay style.

Additionally, the consequences of this PR only matter once the round is over (something that doesn't even matter a lot of the time, as the Ninja will get killed while fighting security or tiders). Nothing is really meaningfully mitigated during the round, and the only real consequence is failing one objective (with the survive objective still completing, kinda obviously a bug).

At this point I would honestly just recommend a full redesign with actual defined expectations of how the ninja should function instead of just taking the most obvious murderhobo antag ever and trying to squeeze it into an inoffensive hole.

This comment reads to me as bumping up against something I call "Engineering-brain" (I get to say this, I am an engineer and have it too). It's examining the issue from the lens of something that requires hard boundary solutions to a mechanical issue. Which is oftentimes very good, but is not what this PR is tackling.

This PR is not "how do we prevent ninjas from murderboning?" but "how do we frame the ninja experience to make players not want to murderbone?". You bring up the lack of in-round impact as a failure of addressing the issue but that overlooks the effect that comes from having this kind of text shown to the players. It's not a hard mechanical limitation or disincentive but players and the playerbase put value in "greentexting" (or rather, impressing others with their accomplishments), and that value does change their behavior and priorities.

I think a good example of this is the PR that added a restriction to secglasses that prohibits HoP from wearing them, labelling them as Security-restricted. There were zero changes to HoP's ability to go into Security and pick up a pair of glasses roundstart, yet there's been a noticeable change in the number of HoPs wearing secglasses after that PR. Doesn't stop it always, but it doesn't need to stop it always to be an effective change in player behavior. From a purely mechanical perspective it's a total wash but that does not change the observed effect.

@SlamBamActionman
Copy link
Member Author

If I put it this way:

Why do Ninjas mass murder? There may be variations depending on the player, but primarily because it makes it easier for them to complete their objectives.

How do I know that? Because players are trying to complete their objectives. There may be some inherent fun in sneaking into Science and clicking on the R&D server a few times, but it's not like a Ninja can't get the same (or more!) action from performing other activities on the station. I find it extremely dismissive to claim the greentext has minor impact on how players interact with the game when it is in fact core to building the instrumental play that the playerbase values. I'd put more stock into that claim if players didn't care about it, but clearly they do!

This PR does not try to mechanically disincentivize Ninjas from going on murder rampages, but instead it makes it nonoptimal by reframing the overall objectives. And since players trend towards optimization, by necessitating low lethality as part of instrumental play it provides strong influence for how players will behave.

If we get to a point where players individually or collectively decide that this objective is pointless, then sure, it's useless. But I don't think that the parameters I've set will lead to that, and I think the responses to this PR shows it too.

@FairlySadPanda
Copy link
Contributor

FairlySadPanda commented Oct 18, 2025

From a cursory glance this encourages even more passive play from ninja players, which I think is the exact opposite of what ninja needs to be as long as Survival is a round type (as you need each midround that spawns to actually want to muck with the station in interactive ways).

There's a nasty web of problems here.

That said making a design call to go "ok, the ninja is a stealth antag where going loud and violent is their lose condition" is a great place to start a conversation about a ninja overhaul.

EDIT:

Thinking about it actually, it's a thing in MGS games to do no-kill runs etc, and Snake is basically a ninja. So.

Maybe try and collate a few ideas together somewhere and then synthesize into a set of changes to make, of which this can be one?

@TrixxedHeart
Copy link
Contributor

TrixxedHeart commented Oct 18, 2025

My two cents is there should just be a way for the Ninja to extract.

Once a Ninja has all their objectives done they don’t really have much else to do, so of course a lot of them may end up resorting to just murderborning. I don't think it's out of malice or directly wanting to, most of the time it’s just boredom and having no real next step along with the expectations of being an antagonist.

It doesn’t entirely stop murderborning, sure, but I don’t think there’s a reasonable way you’re ever going to without putting baby safety guardrails on literally everything to the point it detriments gameplay. The goal shouldn’t be to punish people for being bored, it should be to give them something better to do or at least a way out once they’ve hit their main goals.

A player might not feel comfortable just going /ghost after finishing, especially with how antagonist roles are usually expected to stay active and “drive” the round. Giving the Ninja specifically a natural way to extract would solve that. It’d let them wrap up their mission cleanly, maybe even get the chance to go play another ghost role, it just feels better from a gameplay and thematic standpoint in my opinion.

@ArtisticRoomba
Copy link
Member

Generally speaking a player usually wants to remain in the around and keep messing with the crew - especially considering that by the time someone completes their objectives they're usually very powerful.

Making them auto-leave upon objective completion makes it so that they will intentionally leave an objective incomplete. If you go down this route further you will end up in a cat and mouse game.

Note that having antagonists leave the game is usually suboptimal for chaos ramping/progression in a round, and this type of leaving should probably only be allowed for neutral ghost roles like the Pizza Delivery Critter.

@TrixxedHeart
Copy link
Contributor

Making them auto-leave upon objective completion makes it so that they will intentionally leave an objective incomplete. If you go down this route further you will end up in a cat and mouse game.

It should not be automatic, it should be player choice.

@ArtisticRoomba
Copy link
Member

It should not be automatic, it should be player choice.

Generally speaking murderboning Ninjas are explicitly looking to kill and make a big impact, so I don't think that the option will be taken quite often.

I agree with Emo's statements and it's a sentiment I share with the ninja - their kit is extremely powerful and built for killing, not really for disabling or sabotaging. While this PR has good intentions to try and curb that, the Ninja will always be a killer with a killing kit at the end of the day, and adding an objective fail for killing too many people isn't a good mechanical solution, it's merely just a dissuasion. Ninja's kit should be changed to encourage saboteur gameplay if this is the gameplay we're looking for.

@EthanQix
Copy link

It should not be automatic, it should be player choice.

Generally speaking murderboning Ninjas are explicitly looking to kill and make a big impact, so I don't think that the option will be taken quite often.

I agree with Emo's statements and it's a sentiment I share with the ninja - their kit is extremely powerful and built for killing, not really for disabling or sabotaging. While this PR has good intentions to try and curb that, the Ninja will always be a killer with a killing kit at the end of the day, and adding an objective fail for killing too many people isn't a good mechanical solution, it's merely just a dissuasion. Ninja's kit should be changed to encourage saboteur gameplay if this is the gameplay we're looking for.

PR to replace ninja sword with smoke bombs

@keronshb
Copy link
Member

I agree with this PR and I also agree that it's not something that will be solved with text.
I also agree that we shouldn't need to bend everything to 2.9 or remove things to make it compliant, that's how you start ending up with a stale game.

As a start, the PR is good. It shouldn't be used as a wipe hands we're done, but as a theoretical testing ground to see if it effects playstyles in any way.

Then we should be looking at the ninja kit to see what can be changed, what mayh or may not be intentional. The core of the kit should still have the teleporting sword, smoke bombs, stars, and the charge.
Unless we add a capture & sell mechanic, the stunglove should be reworked to something like an alternative taser.

@SlamBamActionman
Copy link
Member Author

I agree with Emo's statements and it's a sentiment I share with the ninja - their kit is extremely powerful and built for killing, not really for disabling or sabotaging. While this PR has good intentions to try and curb that, the Ninja will always be a killer with a killing kit at the end of the day, and adding an objective fail for killing too many people isn't a good mechanical solution, it's merely just a dissuasion. Ninja's kit should be changed to encourage saboteur gameplay if this is the gameplay we're looking for.

I'm not necessarily opposed to Ninja getting some sort of overhaul (like you say, its kit is pretty strong just looking at the killing aspect, though I'd argue some lethality is desired) but I think it's an issue that can be approached from two fronts at once. Framing and incentivizing behavior through goals is still very important (I take issue with calling it "merely just a dissuasion"), and I am doubtful that we'll fully find a set of disabling/evasive powers that don't also allow for some lethal strategies.

@EmoGarbage404
Copy link
Contributor

I also agree that we shouldn't need to bend everything to 2.9 or remove things to make it compliant, that's how you start ending up with a stale game.

The players are subject to the rules of the game, regardless of whether or not the game enables them to easily break them. If your issue is with limiting antag strength because it's stale, then that's something that should be taken up with the rule itself. The point of mechanical enforcement of rules as a philosophy is to bring things to a point where rules are no longer needed to mitigate potentially problematic play.

@K-Dynamic
Copy link
Contributor

I'm rewriting Rule 2.9. I would rather the ninja be given freedom to kill like other antags (with justification) but have weaker equipment to avoid murderboning.

Rule 2.9 wouldn't need to exist, but currently the station is far too easy to sabotage and individual antagonists are far too destructive or powerful. (However, I don't want the pendulum to swing the other way and make the game too easy for security. Each round needs more antags who are weaker but have clearer goals.)

@SirWarock
Copy link
Contributor

Should secoffs count, as they are likely to become necessary kills ?

If they don't count, I imagine ninjas will just murderbone them. And given how Ninja's can just stun you to death, there's not really that much you can do about it

@K-Dynamic
Copy link
Contributor

If they don't count, I imagine ninjas will just murderbone them. And given how Ninja's can just stun you to death, there's not really that much you can do about it

You also can't really mechanically enforce "kill secoffs only" because players can be hired as secoffs or lose the access but still act as one.

@alexalexmax
Copy link
Contributor

If ninjas are supposed to be disincentivized from killing people, then why was the ninja's ability to non-lethally rob people via stacking stuns removed? Now the ninja has to lethal uncooperative people in order to rob them which seems contradictory to the idea of an objective that requires them to not lethal people.
Not to mention that there is no way to stop people that the ninja crits from /ghosting or giving up out of spite to prevent the ninja from greentexting.

I would rather the ninja be given freedom to kill like other antags (with justification) but have weaker equipment to avoid murderboning

This should be the solution

@K-Dynamic
Copy link
Contributor

If ninjas are supposed to be disincentivized from killing people, then why was the ninja's ability to non-lethally rob people via stacking stuns removed? Now the ninja has to lethal uncooperative people in order to rob them which seems contradictory to the idea of an objective that requires them to not lethal people.

Ninjas could at one point:

  • Instantly stun you with about 10 shock damage
  • Stunlock you with very little cooldown
  • Strip you of all your items
  • Teleport with you into space

Now I do agree with giving antagonist stun abilities, but in this case, they were often using it to just kill you faster.

Their whole system of abilities and equipment needs to be looked at. I would suggest just making it so they can't teleport while holding something or they teleport without the thing they were holding, but that would be a band-aid fix.

@SuperGDPWYL
Copy link
Contributor

SuperGDPWYL commented Oct 21, 2025

Now the ninja has to lethal uncooperative people in order to rob them

Ninjas have thieving gloves and a cloak. Just sneak up on them.

@SlamBamActionman
Copy link
Member Author

Now the ninja has to lethal uncooperative people in order to rob them which seems contradictory to the idea of an objective that requires them to not lethal people.

The objective effectively tracks round removal, not kills. If a person you have killed gets revived their death does not count towards the objective failing.

This means you are not discouraging killing for stealing or whatever, just that you shouldn't do it in a way where the body isn't found.

Not to mention that there is no way to stop people that the ninja crits from /ghosting or giving up out of spite to prevent the ninja from greentexting.

If a ninja crits you, and you ghost... Either you would be in a position where you would be RR'd anyways and it wouldn't matter for the objective, or you were in a position where you were recoverable at which point you kinda played yourself.

@FairlySadPanda FairlySadPanda added P3: Standard Priority: Default priority for repository items. D3: Low Difficulty: Some codebase knowledge required. T: Balance Change Type: Balance changes through direct value changes, or changes to mechanics that affect it A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities T: New Feature Type: New feature or content, or extending existing content and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities D3: Low Difficulty: Some codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Concern A maintainer has raised concerns regarding the idea. The PR may be closed by another maintainer. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: Balance Change Type: Balance changes through direct value changes, or changes to mechanics that affect it T: New Feature Type: New feature or content, or extending existing content

Projects

None yet

Development

Successfully merging this pull request may close these issues.